package com.cjlgb.design.oauth.service;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cjlgb.design.common.mybatis.service.BaseService;
import com.cjlgb.design.oauth.entity.Oauth2AccountDetails;

import java.util.Collection;

/**
 * @author WFT
 * @date 2019/8/29
 * description:
 */
public interface OauthAccountService extends BaseService<Oauth2AccountDetails> {

    /**
     * 删除用户缓存
     * @param username 用户名
     */
    void deleteCacheByUsername(String username);

    /**
     * 根据用户名修改锁定状态
     * @param username 用户名
     * @param lockFlag 锁定标记:{ -1:锁定,0:正常 }
     */
    void editLockFlag(String username, Integer lockFlag);

    /**
     * 根据用户名列表删除账号
     * @param names 用户名列表
     */
    default void deleteByUserNames(Collection<String> names){
        this.remove(Wrappers.<Oauth2AccountDetails>lambdaQuery().in(Oauth2AccountDetails::getUsername,names));
    }
}
